import { Opt } from '__com/Opt.js'
import dateOpt from '@/option/date.js'
import nameOpt from '@/option/name.js'
import dt from '@dt/dt'

export class listOpt extends Opt {
  constructor(vm) {
    super(vm)
  }
  create() {
    return [
      {
        title: '功能包Id',
        field: 'idStr',
        minWidth: 170
      },
      {
        title: '功能包名称',
        field: 'title',
        minWidth: 170,
        header: {
          filter: {
            title: '功能包名称',
            key: 'title',
            placeholder: '请输入功能包名称',
            input: {}
          }
        }
      },
      {
        title: '外部说明',
        field: 'externalContent',
        minWidth: 140
      },
      {
        title: '内部说明',
        field: 'internalContent',
        minWidth: 140
      },
      {
        field: 'updateTime',
        minWidth: 130,
        title: '操作日期',
        header: {
          filter: dateOpt.range({
            title: '操作日期',
            startKey: 'beginDate',
            endKey: 'endDate',
            disabled: (date) => {
              return date.valueOf() > new Date().getTime()
            },
            check: (val) => {
              return dt.tool.checkDate(val.beginDate, val.endDate, '操作日期跨度至多两年。')
            }
          })
        }
      },
      {
        field: 'updater',
        title: '操作人',
        minWidth: 180,
        header: {
          filter: {
            title: '操作人',
            key: 'updater',
            placeholder: '请输入操作人',
            input: {}
          }
        }
      },
      {
        field: 'handles',
        title: '操作',
        width: 160,
        fixed: 'right',
        cell: (info) => {
          return {
            btn: [
              {
                title: '编辑',
                click: (d) => {
                  this.editFun(d)
                }
              },
              {
                title: '查看',
                click: (d) => {
                  this.toView(d)
                }
              },
              {
                title: info.synced ? '同步' : '',
                click: (d) => {
                  this.syncFun(d)
                }
              }
            ]
          }
        }
      }
    ]
  }
}
